<!-- XHTML 1.0 Strict -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<meta name="author" content="Rachid Touzani" />
<meta name="keywords" content=" css, dropdowns, dropdown menu, drop-down, menu, navigation, nav, horizontal, vertical left-to-right, vertical right-to-left, horizontal linear, horizontal upwards, cross browser, internet explorer, ie, firefox, safari, opera, browser, lwis" />
<meta name="description" content="Clean, standards-friendly, modular framework for dropdown menus" />
<link href="../css/dropdown.vertical.css" media="screen" rel="stylesheet" type="text/css" />
<link href="../css/default.ultimate.css" media="screen" rel="stylesheet" type="text/css" />
<head>
<!-- Title -->
<title>OFELI - Documentation</title>
<!-- Stylesheet -->
<link rel="stylesheet" type="text/css" href="../doxygen.css" />
<link rel="stylesheet" type="text/css" href="../tabs.css" />
</head>
<body>
<p align="center">
  <img src="../im/ofeli.gif" alt="OFELI's Logo" width="300" height="90">
</p>
<p align="center"><font color="#203F5B" size="4" face="verdana,Helvetica">
<b>An Object Oriented Finite Element Library</b></font></p>
<!-- Complete Page-->
<div id="main">
<div id="mainmenu">
 <div class="text">
<!-- Menu -->
 <div class="tabs">
  <ul class="tablist">
   <li><a href="../index.html"><span>Home</span></a>
    <li><a href="../overview.html"><span>Overview</span></a>
    <li><a href="../extlib.html"><span>External Libraries</span></a>
    <li><a href="../citing.html"><span>Citing OFELI</span></a>
    <li><a href="../fformats.html"><span>File Formats</span></a>
    <li><a href="../demos.html"><span>Demo Codes</span></a>
  </ul>
 </div>
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classOFELI_1_1SpMatrix.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classOFELI_1_1SpMatrix-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">SpMatrix&lt; T_ &gt; Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__OFELI.html">OFELI</a><a class="el" href="group__OFELI.html">OFELI</a> &raquo;  &#124; <a class="el" href="group__VectMat.html">Vector and Matrix</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>To handle matrices in sparse storage format.  
 <a href="classOFELI_1_1SpMatrix.html#details">More...</a></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for SpMatrix&lt; T_ &gt;:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
 <div class="center">
  <img src="classOFELI_1_1SpMatrix.png" usemap="#SpMatrix_3C_20T_5F_20_3E_map" alt=""/>
  <map id="SpMatrix_3C_20T_5F_20_3E_map" name="SpMatrix&lt; T_ &gt;_map">
<area href="classOFELI_1_1Matrix.html" title="Virtual class to handle matrices for all storage formats. " alt="Matrix&lt; T_ &gt;" shape="rect" coords="0,0,100,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ga42eb67beab2111425cb10da4678d5ac7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga42eb67beab2111425cb10da4678d5ac7">SpMatrix</a> ()</td></tr>
<tr class="memdesc:ga42eb67beab2111425cb10da4678d5ac7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="group__OFELI.html#ga42eb67beab2111425cb10da4678d5ac7">More...</a><br /></td></tr>
<tr class="separator:ga42eb67beab2111425cb10da4678d5ac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga353a1fc335d51ea6dc16913eceac2e58"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga353a1fc335d51ea6dc16913eceac2e58">SpMatrix</a> (size_t nr, size_t nc)</td></tr>
<tr class="memdesc:ga353a1fc335d51ea6dc16913eceac2e58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor that initializes current instance as a dense matrix.  <a href="group__OFELI.html#ga353a1fc335d51ea6dc16913eceac2e58">More...</a><br /></td></tr>
<tr class="separator:ga353a1fc335d51ea6dc16913eceac2e58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadba40d108b84ea1d9c8a52c591831338"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gadba40d108b84ea1d9c8a52c591831338">SpMatrix</a> (size_t <a class="el" href="classOFELI_1_1Matrix.html#aac782da1f912bceb5d8ad00c8dc892ac">size</a>, int is_diagonal=false)</td></tr>
<tr class="memdesc:gadba40d108b84ea1d9c8a52c591831338"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor that initializes current instance as a dense matrix.  <a href="group__OFELI.html#gadba40d108b84ea1d9c8a52c591831338">More...</a><br /></td></tr>
<tr class="separator:gadba40d108b84ea1d9c8a52c591831338"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaefd772ba6093ce0f83ab67955402352b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gaefd772ba6093ce0f83ab67955402352b">SpMatrix</a> (<a class="el" href="classOFELI_1_1Mesh.html">Mesh</a> &amp;mesh, size_t dof=0, int is_diagonal=false)</td></tr>
<tr class="memdesc:gaefd772ba6093ce0f83ab67955402352b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor using a <a class="el" href="classOFELI_1_1Mesh.html" title="To store and manipulate finite element meshes. ">Mesh</a> instance.  <a href="group__OFELI.html#gaefd772ba6093ce0f83ab67955402352b">More...</a><br /></td></tr>
<tr class="separator:gaefd772ba6093ce0f83ab67955402352b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga42a459de96e7e110a3c31fc73df559cd"><td class="memItemLeft" align="right" valign="top">
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga42a459de96e7e110a3c31fc73df559cd">SpMatrix</a> (const <a class="el" href="classOFELI_1_1SpMatrix.html">SpMatrix</a> &amp;m)</td></tr>
<tr class="memdesc:ga42a459de96e7e110a3c31fc73df559cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:ga42a459de96e7e110a3c31fc73df559cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga73db26aec81b831490a6b9bd06d8201e"><td class="memItemLeft" align="right" valign="top">
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga73db26aec81b831490a6b9bd06d8201e">~SpMatrix</a> ()</td></tr>
<tr class="memdesc:ga73db26aec81b831490a6b9bd06d8201e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:ga73db26aec81b831490a6b9bd06d8201e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga59a581e26a983fbd21d2accce938bc08"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga59a581e26a983fbd21d2accce938bc08">Identity</a> ()</td></tr>
<tr class="memdesc:ga59a581e26a983fbd21d2accce938bc08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define matrix as identity. <br /></td></tr>
<tr class="separator:ga59a581e26a983fbd21d2accce938bc08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8f380d4460b7d04a502b59bc28959d32"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga8f380d4460b7d04a502b59bc28959d32">Dense</a> ()</td></tr>
<tr class="memdesc:ga8f380d4460b7d04a502b59bc28959d32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define matrix as a dense one. <br /></td></tr>
<tr class="separator:ga8f380d4460b7d04a502b59bc28959d32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1391f8c21e85ef8a89765a7979ea404f"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga1391f8c21e85ef8a89765a7979ea404f">Diagonal</a> ()</td></tr>
<tr class="memdesc:ga1391f8c21e85ef8a89765a7979ea404f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define matrix as a diagonal one. <br /></td></tr>
<tr class="separator:ga1391f8c21e85ef8a89765a7979ea404f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab2dc6d9a8fed22c57529176cd4643804"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gab2dc6d9a8fed22c57529176cd4643804">Diagonal</a> (const T_ &amp;a)</td></tr>
<tr class="memdesc:gab2dc6d9a8fed22c57529176cd4643804"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define matrix as a diagonal one with diagonal entries equal to <code>a</code> <br /></td></tr>
<tr class="separator:gab2dc6d9a8fed22c57529176cd4643804"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaac4b0d8283c26efc8adeb593bebe590e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gaac4b0d8283c26efc8adeb593bebe590e">Laplace1D</a> (size_t n, <a class="el" href="group__Util.html#gaccfeb6b1e8cf41731fde610549bee67c">real_t</a> h)</td></tr>
<tr class="memdesc:gaac4b0d8283c26efc8adeb593bebe590e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the matrix as the one for the Laplace equation in 1-D.  <a href="group__OFELI.html#gaac4b0d8283c26efc8adeb593bebe590e">More...</a><br /></td></tr>
<tr class="separator:gaac4b0d8283c26efc8adeb593bebe590e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae84a5130be2183f9dacaf41bcbf85820"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gae84a5130be2183f9dacaf41bcbf85820">Laplace2D</a> (size_t nx, size_t ny)</td></tr>
<tr class="memdesc:gae84a5130be2183f9dacaf41bcbf85820"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the matrix as the one for the Laplace equation in 2-D.  <a href="group__OFELI.html#gae84a5130be2183f9dacaf41bcbf85820">More...</a><br /></td></tr>
<tr class="separator:gae84a5130be2183f9dacaf41bcbf85820"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga05b7680ed419a3422be7b7989f307496"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga05b7680ed419a3422be7b7989f307496">setMesh</a> (<a class="el" href="classOFELI_1_1Mesh.html">Mesh</a> &amp;mesh, size_t dof=0)</td></tr>
<tr class="memdesc:ga05b7680ed419a3422be7b7989f307496"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine mesh graph and initialize matrix.  <a href="group__OFELI.html#ga05b7680ed419a3422be7b7989f307496">More...</a><br /></td></tr>
<tr class="separator:ga05b7680ed419a3422be7b7989f307496"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1d3aaea63e250685e774e6fb65ab5a0"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gac1d3aaea63e250685e774e6fb65ab5a0">setOneDOF</a> ()</td></tr>
<tr class="memdesc:gac1d3aaea63e250685e774e6fb65ab5a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Activate 1-DOF per node option. <br /></td></tr>
<tr class="separator:gac1d3aaea63e250685e774e6fb65ab5a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf9449887e1b8ca6b5184f015285eacf2"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gaf9449887e1b8ca6b5184f015285eacf2">setSides</a> ()</td></tr>
<tr class="memdesc:gaf9449887e1b8ca6b5184f015285eacf2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Activate Sides option. <br /></td></tr>
<tr class="separator:gaf9449887e1b8ca6b5184f015285eacf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac4e475404ab75bd6cfe18a2aeb76a7de"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gac4e475404ab75bd6cfe18a2aeb76a7de">setDiag</a> ()</td></tr>
<tr class="memdesc:gac4e475404ab75bd6cfe18a2aeb76a7de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store diagonal entries in a separate internal vector. <br /></td></tr>
<tr class="separator:gac4e475404ab75bd6cfe18a2aeb76a7de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8298c88e2554c1140fdc531e8efc50db"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga8298c88e2554c1140fdc531e8efc50db">DiagPrescribe</a> (<a class="el" href="classOFELI_1_1Mesh.html">Mesh</a> &amp;mesh, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>, const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;u)</td></tr>
<tr class="memdesc:ga8298c88e2554c1140fdc531e8efc50db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Impose by a diagonal method an essential boundary condition.  <a href="group__OFELI.html#ga8298c88e2554c1140fdc531e8efc50db">More...</a><br /></td></tr>
<tr class="separator:ga8298c88e2554c1140fdc531e8efc50db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab1df9bcbafe4b605f7dd449e55f98dd9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gab1df9bcbafe4b605f7dd449e55f98dd9">DiagPrescribe</a> (<a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>, const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;u)</td></tr>
<tr class="memdesc:gab1df9bcbafe4b605f7dd449e55f98dd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Impose by a diagonal method an essential boundary condition using the <a class="el" href="classOFELI_1_1Mesh.html" title="To store and manipulate finite element meshes. ">Mesh</a> instance provided by the constructor.  <a href="group__OFELI.html#gab1df9bcbafe4b605f7dd449e55f98dd9">More...</a><br /></td></tr>
<tr class="separator:gab1df9bcbafe4b605f7dd449e55f98dd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga97deb13018c1b55b18bfe25a9e339e8d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga97deb13018c1b55b18bfe25a9e339e8d">setSize</a> (size_t <a class="el" href="classOFELI_1_1Matrix.html#aac782da1f912bceb5d8ad00c8dc892ac">size</a>)</td></tr>
<tr class="memdesc:ga97deb13018c1b55b18bfe25a9e339e8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set size of matrix (case where it's a square matrix).  <a href="group__OFELI.html#ga97deb13018c1b55b18bfe25a9e339e8d">More...</a><br /></td></tr>
<tr class="separator:ga97deb13018c1b55b18bfe25a9e339e8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6cd98f8e60c54091bc2249e99677f8c3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga6cd98f8e60c54091bc2249e99677f8c3">setSize</a> (size_t nr, size_t nc)</td></tr>
<tr class="memdesc:ga6cd98f8e60c54091bc2249e99677f8c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set size (number of rows) of matrix.  <a href="group__OFELI.html#ga6cd98f8e60c54091bc2249e99677f8c3">More...</a><br /></td></tr>
<tr class="separator:ga6cd98f8e60c54091bc2249e99677f8c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadca22436d448fc219f940996ff43735a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gadca22436d448fc219f940996ff43735a">setGraph</a> (const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; RC &gt; &amp;I, int opt=1)</td></tr>
<tr class="memdesc:gadca22436d448fc219f940996ff43735a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set graph of matrix by giving a vector of its nonzero entries.  <a href="group__OFELI.html#gadca22436d448fc219f940996ff43735a">More...</a><br /></td></tr>
<tr class="separator:gadca22436d448fc219f940996ff43735a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaca4442e9e5d2d998bdeed7382f72416c"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gaca4442e9e5d2d998bdeed7382f72416c">getRow</a> (size_t i) const </td></tr>
<tr class="memdesc:gaca4442e9e5d2d998bdeed7382f72416c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get <code>i</code>-th row vector. <br /></td></tr>
<tr class="separator:gaca4442e9e5d2d998bdeed7382f72416c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41b22a9bdb6e7816adda67eb2b3fcadd"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga41b22a9bdb6e7816adda67eb2b3fcadd">getColumn</a> (size_t j) const </td></tr>
<tr class="memdesc:ga41b22a9bdb6e7816adda67eb2b3fcadd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get <code>j</code>-th column vector. <br /></td></tr>
<tr class="separator:ga41b22a9bdb6e7816adda67eb2b3fcadd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga906d09665a54a68d6333925dc83c57c8"><td class="memItemLeft" align="right" valign="top">T_ &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga906d09665a54a68d6333925dc83c57c8">operator()</a> (size_t i, size_t j)</td></tr>
<tr class="memdesc:ga906d09665a54a68d6333925dc83c57c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator () (Non constant version)  <a href="group__OFELI.html#ga906d09665a54a68d6333925dc83c57c8">More...</a><br /></td></tr>
<tr class="separator:ga906d09665a54a68d6333925dc83c57c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf4d11677b77c61b1c2530c0295d9a966"><td class="memItemLeft" align="right" valign="top">T_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gaf4d11677b77c61b1c2530c0295d9a966">operator()</a> (size_t i, size_t j) const </td></tr>
<tr class="memdesc:gaf4d11677b77c61b1c2530c0295d9a966"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator <code>()</code> (Constant version)  <a href="group__OFELI.html#gaf4d11677b77c61b1c2530c0295d9a966">More...</a><br /></td></tr>
<tr class="separator:gaf4d11677b77c61b1c2530c0295d9a966"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ddc9619401846e377b99d5f35e21580"><td class="memItemLeft" align="right" valign="top">T_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga5ddc9619401846e377b99d5f35e21580">operator()</a> (size_t i) const </td></tr>
<tr class="memdesc:ga5ddc9619401846e377b99d5f35e21580"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator <code>()</code> with one argument (Constant version)  <a href="group__OFELI.html#ga5ddc9619401846e377b99d5f35e21580">More...</a><br /></td></tr>
<tr class="separator:ga5ddc9619401846e377b99d5f35e21580"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1400eb5ecc91f1deef03ba97f31ab184"><td class="memItemLeft" align="right" valign="top">T_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga1400eb5ecc91f1deef03ba97f31ab184">operator[]</a> (size_t i) const </td></tr>
<tr class="memdesc:ga1400eb5ecc91f1deef03ba97f31ab184"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator <code>[]</code> (Constant version).  <a href="group__OFELI.html#ga1400eb5ecc91f1deef03ba97f31ab184">More...</a><br /></td></tr>
<tr class="separator:ga1400eb5ecc91f1deef03ba97f31ab184"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf415f39f218c1518f30246ad1a28f796"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gaf415f39f218c1518f30246ad1a28f796">operator*</a> (const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;x) const </td></tr>
<tr class="memdesc:gaf415f39f218c1518f30246ad1a28f796"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator <code>*</code> to multiply matrix by a vector.  <a href="group__OFELI.html#gaf415f39f218c1518f30246ad1a28f796">More...</a><br /></td></tr>
<tr class="separator:gaf415f39f218c1518f30246ad1a28f796"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5b014c2573317b2a7280e1e48c0d6cf9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classOFELI_1_1SpMatrix.html">SpMatrix</a>&lt; T_ &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga5b014c2573317b2a7280e1e48c0d6cf9">operator*=</a> (const T_ &amp;a)</td></tr>
<tr class="memdesc:ga5b014c2573317b2a7280e1e48c0d6cf9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator <code>*=</code> to premultiply matrix by a constant.  <a href="group__OFELI.html#ga5b014c2573317b2a7280e1e48c0d6cf9">More...</a><br /></td></tr>
<tr class="separator:ga5b014c2573317b2a7280e1e48c0d6cf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab50a62ca3636fe05fc9b8a2d346bd1b8"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gab50a62ca3636fe05fc9b8a2d346bd1b8">getMesh</a> (<a class="el" href="classOFELI_1_1Mesh.html">Mesh</a> &amp;mesh)</td></tr>
<tr class="memdesc:gab50a62ca3636fe05fc9b8a2d346bd1b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get mesh instance whose reference will be stored in current instance of <a class="el" href="classOFELI_1_1SpMatrix.html" title="To handle matrices in sparse storage format. ">SpMatrix</a>. <br /></td></tr>
<tr class="separator:gab50a62ca3636fe05fc9b8a2d346bd1b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3a7c8856e21eb23fa804f0d2f6e893b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gaf3a7c8856e21eb23fa804f0d2f6e893b">Mult</a> (const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;x, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;y) const </td></tr>
<tr class="memdesc:gaf3a7c8856e21eb23fa804f0d2f6e893b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply matrix by vector and save in another one.  <a href="group__OFELI.html#gaf3a7c8856e21eb23fa804f0d2f6e893b">More...</a><br /></td></tr>
<tr class="separator:gaf3a7c8856e21eb23fa804f0d2f6e893b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga891baacc01ccea53b33d0da6fd57d653"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga891baacc01ccea53b33d0da6fd57d653">MultAdd</a> (const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;x, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;y) const </td></tr>
<tr class="memdesc:ga891baacc01ccea53b33d0da6fd57d653"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply matrix by vector <code>x</code> and add to <code>y</code>.  <a href="group__OFELI.html#ga891baacc01ccea53b33d0da6fd57d653">More...</a><br /></td></tr>
<tr class="separator:ga891baacc01ccea53b33d0da6fd57d653"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga182aa2a623c3a9e200cc74350c173c9b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga182aa2a623c3a9e200cc74350c173c9b">MultAdd</a> (T_ a, const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;x, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;y) const </td></tr>
<tr class="memdesc:ga182aa2a623c3a9e200cc74350c173c9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply matrix by vector <code>a*x</code> and add to <code>y</code>.  <a href="group__OFELI.html#ga182aa2a623c3a9e200cc74350c173c9b">More...</a><br /></td></tr>
<tr class="separator:ga182aa2a623c3a9e200cc74350c173c9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga46d263a3302f9ee2a9a6401080ce9b90"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga46d263a3302f9ee2a9a6401080ce9b90">TMult</a> (const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;x, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;y) const </td></tr>
<tr class="memdesc:ga46d263a3302f9ee2a9a6401080ce9b90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply transpose of matrix by vector <code>x</code> and save in <code>y</code>.  <a href="group__OFELI.html#ga46d263a3302f9ee2a9a6401080ce9b90">More...</a><br /></td></tr>
<tr class="separator:ga46d263a3302f9ee2a9a6401080ce9b90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33e92450a126af2dabdae55f0a7f77ea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga33e92450a126af2dabdae55f0a7f77ea">Axpy</a> (T_ a, const <a class="el" href="classOFELI_1_1SpMatrix.html">SpMatrix</a>&lt; T_ &gt; &amp;m)</td></tr>
<tr class="memdesc:ga33e92450a126af2dabdae55f0a7f77ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add to matrix the product of a matrix by a scalar.  <a href="group__OFELI.html#ga33e92450a126af2dabdae55f0a7f77ea">More...</a><br /></td></tr>
<tr class="separator:ga33e92450a126af2dabdae55f0a7f77ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac7ecd57722b088d883cdb26ac2887270"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gac7ecd57722b088d883cdb26ac2887270">Axpy</a> (T_ a, const <a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&lt; T_ &gt; *m)</td></tr>
<tr class="memdesc:gac7ecd57722b088d883cdb26ac2887270"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add to matrix the product of a matrix by a scalar.  <a href="group__OFELI.html#gac7ecd57722b088d883cdb26ac2887270">More...</a><br /></td></tr>
<tr class="separator:gac7ecd57722b088d883cdb26ac2887270"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61cf373a94a5fedbca306e016bc489c9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga61cf373a94a5fedbca306e016bc489c9">set</a> (size_t i, size_t j, const T_ &amp;val)</td></tr>
<tr class="memdesc:ga61cf373a94a5fedbca306e016bc489c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign a value to an entry of the matrix.  <a href="group__OFELI.html#ga61cf373a94a5fedbca306e016bc489c9">More...</a><br /></td></tr>
<tr class="separator:ga61cf373a94a5fedbca306e016bc489c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga17592a65d5fb95d42c07f724dabad759"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga17592a65d5fb95d42c07f724dabad759">add</a> (size_t i, size_t j, const T_ &amp;val)</td></tr>
<tr class="memdesc:ga17592a65d5fb95d42c07f724dabad759"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a value to an entry of the matrix.  <a href="group__OFELI.html#ga17592a65d5fb95d42c07f724dabad759">More...</a><br /></td></tr>
<tr class="separator:ga17592a65d5fb95d42c07f724dabad759"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaa13c39e3e681f7d695f4fff8f54c20a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gaaa13c39e3e681f7d695f4fff8f54c20a">operator=</a> (const T_ &amp;x)</td></tr>
<tr class="memdesc:gaaa13c39e3e681f7d695f4fff8f54c20a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator =.  <a href="group__OFELI.html#gaaa13c39e3e681f7d695f4fff8f54c20a">More...</a><br /></td></tr>
<tr class="separator:gaaa13c39e3e681f7d695f4fff8f54c20a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac54b91c65c93dbe4622d5dd9c94dd1df"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gac54b91c65c93dbe4622d5dd9c94dd1df">getColInd</a> (size_t i) const </td></tr>
<tr class="memdesc:gac54b91c65c93dbe4622d5dd9c94dd1df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return storage information.  <a href="group__OFELI.html#gac54b91c65c93dbe4622d5dd9c94dd1df">More...</a><br /></td></tr>
<tr class="separator:gac54b91c65c93dbe4622d5dd9c94dd1df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3bc30f41e5950060558b06261cdf271d"><td class="memItemLeft" align="right" valign="top">
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga3bc30f41e5950060558b06261cdf271d">getRowPtr</a> (size_t i) const </td></tr>
<tr class="memdesc:ga3bc30f41e5950060558b06261cdf271d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return Row pointer at position <code>i</code>. <br /></td></tr>
<tr class="separator:ga3bc30f41e5950060558b06261cdf271d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga60abf009c8cdb7ca5f86cf266752cb97"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga60abf009c8cdb7ca5f86cf266752cb97">solve</a> (const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;x, bool fact=false)</td></tr>
<tr class="memdesc:ga60abf009c8cdb7ca5f86cf266752cb97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solve the linear system of equations.  <a href="group__OFELI.html#ga60abf009c8cdb7ca5f86cf266752cb97">More...</a><br /></td></tr>
<tr class="separator:ga60abf009c8cdb7ca5f86cf266752cb97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41a8962995d98e2f2bcae545eccbf698"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga41a8962995d98e2f2bcae545eccbf698">setSolver</a> (<a class="el" href="group__OFELI.html#gad0624a8576d3ca1d4af97479546930ea">Iteration</a> solver=<a class="el" href="group__OFELI.html#ggad0624a8576d3ca1d4af97479546930eaac66d74335d7f7e25037d46473c9dbc84">CG_SOLVER</a>, <a class="el" href="group__OFELI.html#gadac1c2aa74e98e485c02f73279b71a38">Preconditioner</a> prec=<a class="el" href="group__OFELI.html#ggadac1c2aa74e98e485c02f73279b71a38a4268260ca0a19ecd998e62462ccde34e">DIAG_PREC</a>, int max_it=1000, <a class="el" href="group__Util.html#gaccfeb6b1e8cf41731fde610549bee67c">real_t</a> toler=1.e-8)</td></tr>
<tr class="memdesc:ga41a8962995d98e2f2bcae545eccbf698"><td class="mdescLeft">&#160;</td><td class="mdescRight">Choose solver and preconditioner for an iterative procedure.  <a href="group__OFELI.html#ga41a8962995d98e2f2bcae545eccbf698">More...</a><br /></td></tr>
<tr class="separator:ga41a8962995d98e2f2bcae545eccbf698"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac8bb3912a3ce86b15842e79d0b421204"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gac8bb3912a3ce86b15842e79d0b421204">clear</a> ()</td></tr>
<tr class="memdesc:gac8bb3912a3ce86b15842e79d0b421204"><td class="mdescLeft">&#160;</td><td class="mdescRight">brief Set all matrix entries to zero <br /></td></tr>
<tr class="separator:gac8bb3912a3ce86b15842e79d0b421204"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae06e66a8f26e28bdf1e0209f7d0d96bb"><td class="memItemLeft" align="right" valign="top">T_ *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#gae06e66a8f26e28bdf1e0209f7d0d96bb">get</a> () const </td></tr>
<tr class="memdesc:gae06e66a8f26e28bdf1e0209f7d0d96bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return C-Array.  <a href="group__OFELI.html#gae06e66a8f26e28bdf1e0209f7d0d96bb">More...</a><br /></td></tr>
<tr class="separator:gae06e66a8f26e28bdf1e0209f7d0d96bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a7b1d2724593a6ec1212247d7964b8e"><td class="memItemLeft" align="right" valign="top">T_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga7a7b1d2724593a6ec1212247d7964b8e">get</a> (size_t i, size_t j) const </td></tr>
<tr class="memdesc:ga7a7b1d2724593a6ec1212247d7964b8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return entry <code>(i,j)</code> of matrix if this one is stored, <code>0</code> otherwise.  <a href="group__OFELI.html#ga7a7b1d2724593a6ec1212247d7964b8e">More...</a><br /></td></tr>
<tr class="separator:ga7a7b1d2724593a6ec1212247d7964b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga837a14594e640fd6cde277f14df2b100"><td class="memItemLeft" align="right" valign="top">
SpMat &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OFELI.html#ga837a14594e640fd6cde277f14df2b100">getEigenMatrix</a> ()</td></tr>
<tr class="memdesc:ga837a14594e640fd6cde277f14df2b100"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return reference to the matrix instance in Eigen library. <br /></td></tr>
<tr class="separator:ga837a14594e640fd6cde277f14df2b100"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b0e029102ad38f4b814c6523aedb53d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a7b0e029102ad38f4b814c6523aedb53d">reset</a> ()</td></tr>
<tr class="memdesc:a7b0e029102ad38f4b814c6523aedb53d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set matrix to 0 and reset factorization parameter.  <a href="#a7b0e029102ad38f4b814c6523aedb53d">More...</a><br /></td></tr>
<tr class="separator:a7b0e029102ad38f4b814c6523aedb53d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac64de7025d9f5712288b3093ca5408b1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac64de7025d9f5712288b3093ca5408b1"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#ac64de7025d9f5712288b3093ca5408b1">getNbRows</a> () const </td></tr>
<tr class="memdesc:ac64de7025d9f5712288b3093ca5408b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return number of rows. <br /></td></tr>
<tr class="separator:ac64de7025d9f5712288b3093ca5408b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a879356293a4c2120a7f87bf231ce341c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a879356293a4c2120a7f87bf231ce341c"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a879356293a4c2120a7f87bf231ce341c">getNbColumns</a> () const </td></tr>
<tr class="memdesc:a879356293a4c2120a7f87bf231ce341c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return number of columns. <br /></td></tr>
<tr class="separator:a879356293a4c2120a7f87bf231ce341c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72077468b17118c44394d286f7737bd4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a72077468b17118c44394d286f7737bd4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a72077468b17118c44394d286f7737bd4">setPenal</a> (<a class="el" href="group__Util.html#gaccfeb6b1e8cf41731fde610549bee67c">real_t</a> p)</td></tr>
<tr class="memdesc:a72077468b17118c44394d286f7737bd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set Penalty Parameter (For boundary condition prescription). <br /></td></tr>
<tr class="separator:a72077468b17118c44394d286f7737bd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a282ce97ddc94a4ad0030c047b35332ca"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a282ce97ddc94a4ad0030c047b35332ca"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a282ce97ddc94a4ad0030c047b35332ca">setDiagonal</a> ()</td></tr>
<tr class="memdesc:a282ce97ddc94a4ad0030c047b35332ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the matrix as diagonal. <br /></td></tr>
<tr class="separator:a282ce97ddc94a4ad0030c047b35332ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a196d9e08fa42335a41f8e67082215065"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a196d9e08fa42335a41f8e67082215065">setDiagonal</a> (<a class="el" href="classOFELI_1_1Mesh.html">Mesh</a> &amp;mesh)</td></tr>
<tr class="memdesc:a196d9e08fa42335a41f8e67082215065"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize matrix storage in the case where only diagonal terms are stored.  <a href="#a196d9e08fa42335a41f8e67082215065">More...</a><br /></td></tr>
<tr class="separator:a196d9e08fa42335a41f8e67082215065"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06fae0c47b38f34c0c764b2b6109f9d5"><td class="memItemLeft" align="right" valign="top">T_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a06fae0c47b38f34c0c764b2b6109f9d5">getDiag</a> (size_t k) const </td></tr>
<tr class="memdesc:a06fae0c47b38f34c0c764b2b6109f9d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return <code>k</code>-th diagonal entry of matrix.  <a href="#a06fae0c47b38f34c0c764b2b6109f9d5">More...</a><br /></td></tr>
<tr class="separator:a06fae0c47b38f34c0c764b2b6109f9d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac782da1f912bceb5d8ad00c8dc892ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac782da1f912bceb5d8ad00c8dc892ac"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#aac782da1f912bceb5d8ad00c8dc892ac">size</a> () const </td></tr>
<tr class="memdesc:aac782da1f912bceb5d8ad00c8dc892ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return matrix dimension (Number of rows and columns). <br /></td></tr>
<tr class="separator:aac782da1f912bceb5d8ad00c8dc892ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae8f063011ae37198a6c96ad00da6188"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#aae8f063011ae37198a6c96ad00da6188">Assembly</a> (const <a class="el" href="classOFELI_1_1Element.html">Element</a> &amp;el, T_ *a)</td></tr>
<tr class="memdesc:aae8f063011ae37198a6c96ad00da6188"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assembly of element matrix into global matrix.  <a href="#aae8f063011ae37198a6c96ad00da6188">More...</a><br /></td></tr>
<tr class="separator:aae8f063011ae37198a6c96ad00da6188"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a377c96d9edc5455d8b81d7f2e75a7437"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a377c96d9edc5455d8b81d7f2e75a7437">Assembly</a> (const <a class="el" href="classOFELI_1_1Side.html">Side</a> &amp;sd, T_ *a)</td></tr>
<tr class="memdesc:a377c96d9edc5455d8b81d7f2e75a7437"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assembly of side matrix into global matrix.  <a href="#a377c96d9edc5455d8b81d7f2e75a7437">More...</a><br /></td></tr>
<tr class="separator:a377c96d9edc5455d8b81d7f2e75a7437"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1775cd968f5d809fed17f111c852a8f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a1775cd968f5d809fed17f111c852a8f4">Prescribe</a> (<a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>, const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;u, int flag=0)</td></tr>
<tr class="memdesc:a1775cd968f5d809fed17f111c852a8f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Impose by a penalty method an essential boundary condition, using the <a class="el" href="classOFELI_1_1Mesh.html" title="To store and manipulate finite element meshes. ">Mesh</a> instance provided by the constructor.  <a href="#a1775cd968f5d809fed17f111c852a8f4">More...</a><br /></td></tr>
<tr class="separator:a1775cd968f5d809fed17f111c852a8f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e9143a391d39e2b1c8fc092d18a2c01"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a5e9143a391d39e2b1c8fc092d18a2c01">Prescribe</a> (int dof, int code, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>, const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;u, int flag=0)</td></tr>
<tr class="memdesc:a5e9143a391d39e2b1c8fc092d18a2c01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Impose by a penalty method an essential boundary condition to a given degree of freedom for a given code.  <a href="#a5e9143a391d39e2b1c8fc092d18a2c01">More...</a><br /></td></tr>
<tr class="separator:a5e9143a391d39e2b1c8fc092d18a2c01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d58b8c69697615bb891ad8d89192e11"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a3d58b8c69697615bb891ad8d89192e11">Prescribe</a> (<a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>, int flag=0)</td></tr>
<tr class="memdesc:a3d58b8c69697615bb891ad8d89192e11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Impose by a penalty method a homegeneous (=0) essential boundary condition.  <a href="#a3d58b8c69697615bb891ad8d89192e11">More...</a><br /></td></tr>
<tr class="separator:a3d58b8c69697615bb891ad8d89192e11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a278a1ed1bb0a7a6df613e63816c8cf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a0a278a1ed1bb0a7a6df613e63816c8cf">Prescribe</a> (size_t dof, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>, const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;u, int flag=0)</td></tr>
<tr class="memdesc:a0a278a1ed1bb0a7a6df613e63816c8cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Impose by a penalty method an essential boundary condition when only one DOF is treated.  <a href="#a0a278a1ed1bb0a7a6df613e63816c8cf">More...</a><br /></td></tr>
<tr class="separator:a0a278a1ed1bb0a7a6df613e63816c8cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4668862b3d13a8ac8ffec768b7e38631"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a4668862b3d13a8ac8ffec768b7e38631">PrescribeSide</a> ()</td></tr>
<tr class="memdesc:a4668862b3d13a8ac8ffec768b7e38631"><td class="mdescLeft">&#160;</td><td class="mdescRight">Impose by a penalty method an essential boundary condition when DOFs are supported by sides.  <a href="#a4668862b3d13a8ac8ffec768b7e38631">More...</a><br /></td></tr>
<tr class="separator:a4668862b3d13a8ac8ffec768b7e38631"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9f6b1105cb4953c3f56b5c51ed4b046"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab9f6b1105cb4953c3f56b5c51ed4b046"></a>
virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#ab9f6b1105cb4953c3f56b5c51ed4b046">Factor</a> ()=0</td></tr>
<tr class="memdesc:ab9f6b1105cb4953c3f56b5c51ed4b046"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factorize matrix. Available only if the storage class enables it. <br /></td></tr>
<tr class="separator:ab9f6b1105cb4953c3f56b5c51ed4b046"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31a4417e8d251ece6decd21307049dbf"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a31a4417e8d251ece6decd21307049dbf">solve</a> (<a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>, bool fact=true)=0</td></tr>
<tr class="memdesc:a31a4417e8d251ece6decd21307049dbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solve the linear system.  <a href="#a31a4417e8d251ece6decd21307049dbf">More...</a><br /></td></tr>
<tr class="separator:a31a4417e8d251ece6decd21307049dbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af70ebb919bf4d6e5e646c1c113392a79"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#af70ebb919bf4d6e5e646c1c113392a79">FactorAndSolve</a> (<a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>)</td></tr>
<tr class="memdesc:af70ebb919bf4d6e5e646c1c113392a79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factorize matrix and solve the linear system.  <a href="#af70ebb919bf4d6e5e646c1c113392a79">More...</a><br /></td></tr>
<tr class="separator:af70ebb919bf4d6e5e646c1c113392a79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad20265f18b86fdc36c0c694d34bb01db"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#ad20265f18b86fdc36c0c694d34bb01db">FactorAndSolve</a> (const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;<a class="el" href="group__OFELI.html#gaf5cd2eaaceda19772fd904539819158c">b</a>, <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;x)</td></tr>
<tr class="memdesc:ad20265f18b86fdc36c0c694d34bb01db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factorize matrix and solve the linear system.  <a href="#ad20265f18b86fdc36c0c694d34bb01db">More...</a><br /></td></tr>
<tr class="separator:ad20265f18b86fdc36c0c694d34bb01db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68d4c55c333f8db2cc206b90b1e53041"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a68d4c55c333f8db2cc206b90b1e53041"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a68d4c55c333f8db2cc206b90b1e53041">getLength</a> () const </td></tr>
<tr class="memdesc:a68d4c55c333f8db2cc206b90b1e53041"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return number of stored terms in matrix. <br /></td></tr>
<tr class="separator:a68d4c55c333f8db2cc206b90b1e53041"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01047a7f68670914394281ab80f89947"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01047a7f68670914394281ab80f89947"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a01047a7f68670914394281ab80f89947">isDiagonal</a> () const </td></tr>
<tr class="memdesc:a01047a7f68670914394281ab80f89947"><td class="mdescLeft">&#160;</td><td class="mdescRight">Say if matrix is diagonal or not. <br /></td></tr>
<tr class="separator:a01047a7f68670914394281ab80f89947"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1db6c5f267140ce71d02b845638d6229"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a1db6c5f267140ce71d02b845638d6229">isFactorized</a> () const </td></tr>
<tr class="memdesc:a1db6c5f267140ce71d02b845638d6229"><td class="mdescLeft">&#160;</td><td class="mdescRight">Say if matrix is factorized or not.  <a href="#a1db6c5f267140ce71d02b845638d6229">More...</a><br /></td></tr>
<tr class="separator:a1db6c5f267140ce71d02b845638d6229"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7fb7738730bfcc21b07ede2b6137fc9"><td class="memItemLeft" align="right" valign="top">T_ &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#ad7fb7738730bfcc21b07ede2b6137fc9">operator()</a> (size_t i)</td></tr>
<tr class="memdesc:ad7fb7738730bfcc21b07ede2b6137fc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator () with one argument (Non Constant version).  <a href="#ad7fb7738730bfcc21b07ede2b6137fc9">More...</a><br /></td></tr>
<tr class="separator:ad7fb7738730bfcc21b07ede2b6137fc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a760177d294663b1dd8941afd331b0fbb"><td class="memItemLeft" align="right" valign="top">T_ &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a760177d294663b1dd8941afd331b0fbb">operator[]</a> (size_t k)</td></tr>
<tr class="memdesc:a760177d294663b1dd8941afd331b0fbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator [] (Non constant version).  <a href="#a760177d294663b1dd8941afd331b0fbb">More...</a><br /></td></tr>
<tr class="separator:a760177d294663b1dd8941afd331b0fbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3cbfbe86d6789ebc8b34b261402fb9a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#aa3cbfbe86d6789ebc8b34b261402fb9a">operator+=</a> (const <a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&lt; T_ &gt; &amp;m)</td></tr>
<tr class="memdesc:aa3cbfbe86d6789ebc8b34b261402fb9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator +=.  <a href="#aa3cbfbe86d6789ebc8b34b261402fb9a">More...</a><br /></td></tr>
<tr class="separator:aa3cbfbe86d6789ebc8b34b261402fb9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaed73bab677150385013d0d6e138c69"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#adaed73bab677150385013d0d6e138c69">operator+=</a> (const T_ &amp;x)</td></tr>
<tr class="memdesc:adaed73bab677150385013d0d6e138c69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator +=.  <a href="#adaed73bab677150385013d0d6e138c69">More...</a><br /></td></tr>
<tr class="separator:adaed73bab677150385013d0d6e138c69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82f89bc074972e8d49e6459ea384d672"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a82f89bc074972e8d49e6459ea384d672">operator-=</a> (const <a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&lt; T_ &gt; &amp;m)</td></tr>
<tr class="memdesc:a82f89bc074972e8d49e6459ea384d672"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator -=.  <a href="#a82f89bc074972e8d49e6459ea384d672">More...</a><br /></td></tr>
<tr class="separator:a82f89bc074972e8d49e6459ea384d672"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a778ac464768eefc4fd77ab93207c70cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOFELI_1_1Matrix.html#a778ac464768eefc4fd77ab93207c70cb">operator-=</a> (const T_ &amp;x)</td></tr>
<tr class="memdesc:a778ac464768eefc4fd77ab93207c70cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator -=.  <a href="#a778ac464768eefc4fd77ab93207c70cb">More...</a><br /></td></tr>
<tr class="separator:a778ac464768eefc4fd77ab93207c70cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:gaa73f6bb9d73f883c039843bf8a4dd9c1"><td class="memTemplParams" colspan="2">template&lt;class TT_ &gt; </td></tr>
<tr class="memitem:gaa73f6bb9d73f883c039843bf8a4dd9c1"><td class="memTemplItemLeft" align="right" valign="top">ostream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__VectMat.html#gaa73f6bb9d73f883c039843bf8a4dd9c1">operator&lt;&lt;</a> (ostream &amp;s, const <a class="el" href="classOFELI_1_1SpMatrix.html">SpMatrix</a>&lt; TT_ &gt; &amp;<a class="el" href="group__OFELI.html#ga8d83ae0344b0fbb3265762cd97e1b1db">A</a>)</td></tr>
<tr class="separator:gaa73f6bb9d73f883c039843bf8a4dd9c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class T_&gt;<br />
class OFELI::SpMatrix&lt; T_ &gt;</h3>

<p>To handle matrices in sparse storage format. </p>
<p>This template class enables storing and manipulating a sparse matrix, i.e. only nonzero terms are stored. Internally, the matrix is stored as a vector instance and uses for the definition of its graph a <code>Vect&lt;size_t&gt;</code> instance row_ptr and a Vect&lt;size_t&gt; instance <code>col_ind</code> that contains respectively addresses of first element of each row and column indices.</p>
<p>To illustrate this, consider the matrix </p><pre class="fragment">         1   2   0
         3   4   0
         0   5   0
</pre><p>Such a matrix is stored in the vector&lt;real_t&gt; instance {1,2,3,4,5}. The vectors <code>row_ptr</code> and <code>col_ind</code> are respectively: <code>{0,2,4,5}</code>, <code>{1,2,1,2,2}</code></p>
<p>When the library <code>eigen</code> is used in conjunction with <code><a class="el" href="namespaceOFELI.html" title="A namespace to group all library classes, functions, ... ">OFELI</a></code>, the class uses the sparse matrix class of <code>eigen</code> and enables then access to specific solvers (see class <a class="el" href="classOFELI_1_1LinearSolver.html" title="Class to solve systems of linear equations by iterative methods. ">LinearSolver</a>)</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T_</td><td>Data type (double, float, complex&lt;double&gt;, ...)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section author"><dt>Author</dt><dd>Rachid Touzani </dd></dl>
<dl class="section copyright"><dt>Copyright</dt><dd>GNU Lesser Public License </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a7b0e029102ad38f4b814c6523aedb53d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void reset </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set matrix to 0 and reset factorization parameter. </p>
<dl class="section warning"><dt>Warning</dt><dd>This function must be used if after a factorization, the matrix has modified </dd></dl>

<p>Reimplemented in <a class="el" href="classOFELI_1_1DMatrix.html#ad20897c5c8bd47f5d4005989bead0e55">DMatrix&lt; T_ &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a196d9e08fa42335a41f8e67082215065"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void setDiagonal </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Mesh.html">Mesh</a> &amp;&#160;</td>
          <td class="paramname"><em>mesh</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Initialize matrix storage in the case where only diagonal terms are stored. </p>
<p>This member function is to be used for explicit time integration schemes </p>

</div>
</div>
<a class="anchor" id="a06fae0c47b38f34c0c764b2b6109f9d5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T_ getDiag </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>k</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return <code>k</code>-th diagonal entry of matrix. </p>
<p>First entry is given by <b>getDiag(1)</b>. </p>

</div>
</div>
<a class="anchor" id="aae8f063011ae37198a6c96ad00da6188"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Assembly </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Element.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>el</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_ *&#160;</td>
          <td class="paramname"><em>a</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Assembly of element matrix into global matrix. </p>
<p>Case where element matrix is given by a C-array. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">el</td><td>Pointer to element instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td><a class="el" href="classOFELI_1_1Element.html" title="To store and treat finite element geometric information. ">Element</a> matrix as a C-array </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a377c96d9edc5455d8b81d7f2e75a7437"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Assembly </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Side.html">Side</a> &amp;&#160;</td>
          <td class="paramname"><em>sd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_ *&#160;</td>
          <td class="paramname"><em>a</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Assembly of side matrix into global matrix. </p>
<p>Case where side matrix is given by a C-array. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sd</td><td>Pointer to side instance </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td><a class="el" href="classOFELI_1_1Side.html" title="To store and treat finite element sides (edges in 2-D or faces in 3-D) ">Side</a> matrix as a C-array instance </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1775cd968f5d809fed17f111c852a8f4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Prescribe </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>u</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flag</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Impose by a penalty method an essential boundary condition, using the <a class="el" href="classOFELI_1_1Mesh.html" title="To store and manipulate finite element meshes. ">Mesh</a> instance provided by the constructor. </p>
<p>This member function modifies diagonal terms in matrix and terms in vector that correspond to degrees of freedom with nonzero code in order to impose a boundary condition. The penalty parameter is defined by default equal to 1.e20. It can be modified by member function <b>setPenal</b>(..). </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">b</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains right-hand side. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">u</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains imposed valued at DOFs where they are to be imposed. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flag</td><td>Parameter to determine whether only the right-hand side is to be modified (<code>dof&gt;0</code>)<br />
or both matrix and right-hand side (<code>dof=0</code>, default value). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5e9143a391d39e2b1c8fc092d18a2c01"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Prescribe </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>dof</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>u</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flag</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Impose by a penalty method an essential boundary condition to a given degree of freedom for a given code. </p>
<p>This member function modifies diagonal terms in matrix and terms in vector that correspond to degrees of freedom with nonzero code in order to impose a boundary condition. The penalty parameter is defined by default equal to 1.e20. It can be modified by member function <b>setPenal</b>(..). </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">dof</td><td>Degree of freedom for which a boundary condition is to be enforced </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">code</td><td>Code for which a boundary condition is to be enforced </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">b</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains right-hand side. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">u</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains imposed valued at DOFs where they are to be imposed. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flag</td><td>Parameter to determine whether only the right-hand side is to be modified<br />
(<code>dof&gt;0</code>) or both matrix and right-hand side (<code>dof=0</code>, default value). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3d58b8c69697615bb891ad8d89192e11"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Prescribe </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flag</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Impose by a penalty method a homegeneous (=0) essential boundary condition. </p>
<p>This member function modifies diagonal terms in matrix and terms in vector that correspond to degrees of freedom with nonzero code in order to impose a boundary condition. The penalty parameter is defined by default equal to 1.e20. It can be modified by member function <b>setPenal</b>(..). </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">b</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains right-hand side. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flag</td><td>Parameter to determine whether only the right-hand side is to be modified (<code>dof&gt;0</code>)<br />
or both matrix and right-hand side (<code>dof=0</code>, default value). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0a278a1ed1bb0a7a6df613e63816c8cf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Prescribe </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>dof</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>u</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flag</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Impose by a penalty method an essential boundary condition when only one DOF is treated. </p>
<p>This member function modifies diagonal terms in matrix and terms in vector that correspond to degrees of freedom with nonzero code in order to impose a boundary condition. This gunction is to be used if only one DOF per node is treated in the linear system. The penalty parameter is by default equal to 1.e20. It can be modified by member function setPenal. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">dof</td><td>Label of the concerned degree of freedom (DOF). </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">b</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains right-hand side. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">u</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that conatins imposed valued at DOFs where they are to be imposed. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flag</td><td>Parameter to determine whether only the right-hand side is to be modified (<code>dof&gt;0</code>)<br />
or both matrix and right-hand side (<code>dof=0</code>, default value). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4668862b3d13a8ac8ffec768b7e38631"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void PrescribeSide </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Impose by a penalty method an essential boundary condition when DOFs are supported by sides. </p>
<p>This member function modifies diagonal terms in matrix and terms in vector that correspond to degrees of freedom with nonzero code in order to impose a boundary condition. The penalty parameter is defined by default equal to 1.e20. It can be modified by member function <b>setPenal</b>(..). </p>

</div>
</div>
<a class="anchor" id="a31a4417e8d251ece6decd21307049dbf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int solve </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>fact</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Solve the linear system. </p>
<p>If the inherited class is <a class="el" href="classOFELI_1_1SpMatrix.html" title="To handle matrices in sparse storage format. ">SpMatrix</a>, the function uses an iterative method once this one has been chosen. Otherwise, the method solves the linear system by factorization. </p>

<p>Implemented in <a class="el" href="classOFELI_1_1DMatrix.html#a85abe8e904adb7fd09103d7b3e8e362d">DMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1SkSMatrix.html#a85abe8e904adb7fd09103d7b3e8e362d">SkSMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1SkMatrix.html#a85abe8e904adb7fd09103d7b3e8e362d">SkMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1DSMatrix.html#a85abe8e904adb7fd09103d7b3e8e362d">DSMatrix&lt; T_ &gt;</a>, <a class="el" href="classOFELI_1_1BMatrix.html#abf3df464c1118a2063447c9765725a2e">BMatrix&lt; T_ &gt;</a>, and <a class="el" href="group__OFELI.html#ga85abe8e904adb7fd09103d7b3e8e362d">TrMatrix&lt; T_ &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="af70ebb919bf4d6e5e646c1c113392a79"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int FactorAndSolve </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Factorize matrix and solve the linear system. </p>
<p>This is available only if the storage cass enables it. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">b</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains right-hand side on input and solution on output </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad20265f18b86fdc36c0c694d34bb01db"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int FactorAndSolve </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classOFELI_1_1Vect.html">Vect</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Factorize matrix and solve the linear system. </p>
<p>This is available only if the storage class enables it. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains right-hand side </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">x</td><td><a class="el" href="classOFELI_1_1Vect.html" title="To handle general purpose vectors. ">Vect</a> instance that contains solution </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>
<code>0</code> if solution was normally performed </li>
<li>
<code>n</code> if the n-th pivot is nul </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="a1db6c5f267140ce71d02b845638d6229"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int isFactorized </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Say if matrix is factorized or not. </p>
<p>If the matrix was not factorized, the class does not allow solving by a direct solver. </p>

</div>
</div>
<a class="anchor" id="ad7fb7738730bfcc21b07ede2b6137fc9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T_&amp; operator() </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Operator () with one argument (Non Constant version). </p>
<p>Returns <code>i</code>-th position in the array storing matrix entries. The first entry is at location 1. Entries are stored row by row. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>entry index </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a760177d294663b1dd8941afd331b0fbb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T_&amp; operator[] </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>k</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Operator [] (Non constant version). </p>
<p>Returns <code>k</code>-th stored element in matrix Index <code>k</code> starts at <code>0</code>. </p>

</div>
</div>
<a class="anchor" id="aa3cbfbe86d6789ebc8b34b261402fb9a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&amp; operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>m</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Operator +=. </p>
<p>Add matrix <code>m</code> to current matrix instance. </p>

</div>
</div>
<a class="anchor" id="adaed73bab677150385013d0d6e138c69"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&amp; operator+= </td>
          <td>(</td>
          <td class="paramtype">const T_ &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Operator +=. </p>
<p>Add constant value <code>x</code> to all matrix entries. </p>

</div>
</div>
<a class="anchor" id="a82f89bc074972e8d49e6459ea384d672"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&amp; operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&lt; T_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>m</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Operator -=. </p>
<p>Subtract matrix <code>m</code> from current matrix instance. </p>

</div>
</div>
<a class="anchor" id="a778ac464768eefc4fd77ab93207c70cb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classOFELI_1_1Matrix.html">Matrix</a>&amp; operator-= </td>
          <td>(</td>
          <td class="paramtype">const T_ &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Operator -=. </p>
<p>Subtract constant value <code>x</code> from all matrix entries. </p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->

</div> <!-- class text -->
</div> <!-- main menu -->
<!-- Google Search -->
<br><br>
<center>
  <div id="cse" style="width: 80%;">Loading</div>
  <script src="http://www.google.com/jsapi" type="text/javascript"></script>
  <script type="text/javascript"> 
     google.load('search', '1', {language : 'en', style : google.loader.themes.SHINY});
     google.setOnLoadCallback(function() {
        var customSearchOptions = {};  var customSearchControl = new google.search.CustomSearchControl(
        '012396140824982761142:-qrywxcfi_o', customSearchOptions);
        customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
        customSearchControl.draw('cse');
     }, true);
   </script>
   <style type="text/css">
     .gsc-control-cse {
     font-family: Verdana, sans-serif;
     border-color: #DAE0E5;
     background-color: #DAE0E5;
   }
   .gsc-control-cse .gsc-table-result { font-family: Verdana, sans-serif; }
   input.gsc-input { border-color: #B6BEC5; }
   input.gsc-search-button {
     border-color: #B6BEC5;
     background-color: #D0D1D4;
   }
   .gsc-tabHeader.gsc-tabhInactive {
     border-color: #999999;
     background-color: #EEEEEE;
   }
   .gsc-tabHeader.gsc-tabhActive {
     border-color: #999999;
     background-color: #999999;
   }
   .gsc-tabsArea { border-color: #999999; }
   .gsc-webResult.gsc-result,
   .gsc-results .gsc-imageResult {
     border-color: #FFFFFF;
     background-color: #FFFFFF;
   }
   .gsc-webResult.gsc-result:hover,
   .gsc-imageResult:hover {
     border-color: #D2D6DC;
     background-color: #EDEDED;
   }
   .gsc-webResult.gsc-result.gsc-promotion:hover {
     border-color: #D2D6DC;
     background-color: #EDEDED;
   }
   .gs-webResult.gs-result a.gs-title:link,
   .gs-webResult.gs-result a.gs-title:link b,
   .gs-imageResult a.gs-title:link,
   .gs-imageResult a.gs-title:link b { color: #0568CD; }
   .gs-webResult.gs-result a.gs-title:visited,
   .gs-webResult.gs-result a.gs-title:visited b,
   .gs-imageResult a.gs-title:visited,
   .gs-imageResult a.gs-title:visited b { color: #0568CD; }
   .gs-webResult.gs-result a.gs-title:hover,
   .gs-webResult.gs-result a.gs-title:hover b,
   .gs-imageResult a.gs-title:hover,
   .gs-imageResult a.gs-title:hover b { color: #0568CD; }
   .gs-webResult.gs-result a.gs-title:active,
   .gs-webResult.gs-result a.gs-title:active b,
   .gs-imageResult a.gs-title:active,
   .gs-imageResult a.gs-title:active b { color: #0568CD; }
   .gsc-cursor-page { color: #0568CD; }
   a.gsc-trailing-more-results:link { color: #0568CD; }
   .gs-webResult .gs-snippet,
   .gs-imageResult .gs-snippet,
   .gs-fileFormatType { color: #5F6A73; }
   .gs-webResult div.gs-visibleUrl,
   .gs-imageResult div.gs-visibleUrl { color: #5F6A73; }
   .gs-webResult div.gs-visibleUrl-short { color: #5F6A73; }
   .gs-webResult div.gs-visibleUrl-short { display: none; }
   .gs-webResult div.gs-visibleUrl-long { display: block; }
   .gs-promotion div.gs-visibleUrl-short { display: none; }
   .gs-promotion div.gs-visibleUrl-long { display: block; }
   .gsc-cursor-box { border-color: #FFFFFF; }
   .gsc-results .gsc-cursor-box .gsc-cursor-page {
      border-color: #999999;
      background-color: #FFFFFF;
      color: #0568CD;
   }
   .gsc-results .gsc-cursor-box .gsc-cursor-current-page {
      border-color: #999999;
      background-color: #999999;
      color: #0568CD;
   }
   .gsc-webResult.gsc-result.gsc-promotion {
      border-color: #D2D6DC;
      background-color: #D0D1D4;
   }
   .gsc-completion-title { color: #0568CD; }
   .gsc-completion-snippet { color: #5F6A73; }
   .gs-promotion a.gs-title:link,
   .gs-promotion a.gs-title:link *,
   .gs-promotion .gs-snippet a:link { color: #0066CC; }
   .gs-promotion a.gs-title:visited,
   .gs-promotion a.gs-title:visited *,
   .gs-promotion .gs-snippet a:visited { color: #0066CC; }
   .gs-promotion a.gs-title:hover,
   .gs-promotion a.gs-title:hover *,
   .gs-promotion .gs-snippet a:hover { color: #0066CC; }
   .gs-promotion a.gs-title:active,
   .gs-promotion a.gs-title:active *,
   .gs-promotion .gs-snippet a:active { color: #0066CC; }
   .gs-promotion .gs-snippet,
   .gs-promotion .gs-title .gs-promotion-title-right,
   .gs-promotion .gs-title .gs-promotion-title-right *  { color: #333333; }
   .gs-promotion .gs-visibleUrl,
   .gs-promotion .gs-visibleUrl-short { color: #5F6A73; }
   </style>
</center>
<!-- End of Google Search Box -->
<br><br><br></p>
<div id="foot_bar">
  Copyright &copy; 1998-2019 Rachid Touzani&nbsp;
</div>
</div> <!-- main -->
</body>
</HTML>
